"""
### 编程题 2：嵌套字典数据处理

有一个嵌套字典，存储了学生的课程成绩信息。 编写一个函数，计算每个学生的平均成绩，
并返回一个新的字典，键为学生名字，值为平均成绩。
结构如下：

```python
students = {
    "Alice": {
        "Math": 85,
        "English": 90,
        "Science": 78
    },
    "Bob": {
        "Math": 92,
        "English": 88,
        "Science": 95
    },
    "Charlie": {
        "Math": 70,
        "English": 75,
        "Science": 80
    }
}
"""

students = {
    "Alice": {
        "Math": 85,
        "English": 90,
        "Science": 78
    },
    "Bob": {
        "Math": 92,
        "English": 88,
        "Science": 95
    },
    "Charlie": {
        "Math": 70,
        "English": 75,
        "Science": 80
    }
}
"""
有一个嵌套字典，存储了学生的课程成绩信息。 编写一个函数，计算每个学生的平均成绩，
并返回一个新的字典，键为学生名字，值为平均成绩。
"""
"""
本题做题思路：
1，用for循环，对嵌套字典里的 k、v同时遍历 取出v
"""

def ca_scores(students):
    averages = {}

    for student, scores in students.items():
        average_score = sum(scores.values()) / len(scores) #每个字典里的值v的和 除以这个v的长度
        averages[student] = round(average_score, 2)  # 保留两位小数
    return averages

# 调用函数并打印结果
result = ca_scores(students)
print(result)







#print(students)#{ 'Alice':   {'Math': 85, 'English': 90, 'Science': 78},
                # 'Bob':     {'Math': 92, 'English': 88, 'Science': 95},
                # 'Charlie': {'Math': 70, 'English': 75, 'Science': 80}  }
#for k, v in students.items():
#    print(students)
 #   print(v)  # 取出的是嵌套字典里的每个字典 # {'Math': 85, 'English': 90, 'Science': 78}
                                        #  {'Math': 92, 'English': 88, 'Science': 95}
                                        #  {'Math': 70, 'English': 75, 'Science': 80}

#     print(v.values()) #取出的是字典里 每个v的值     dict_values([85, 90, 78])
                                          #       dict_values([92, 88, 95])
                                          #       dict_values([70, 75, 80])
#    print(sum(v.values())) #每个字典的和
